package org.an.proj.contacts.net.imageload;

import android.widget.ImageView;
import com.squareup.picasso.Picasso;
import org.an.ku.util.StringUtil;
import org.an.proj.contacts.MyApplication;
import org.an.proj.contacts.config.LogUtil;
import org.an.proj.contacts.net.service.retrofit.upload.ProgressListener;
import org.an.proj.contacts.net.service.retrofit.upload.ProgressPicassoDownloader;

/**
 * 创建时间：2016年11月15日13:53 <br>
 * 作者：fuchaoyang <br>
 * 描述：写成这样还是很难用：一下几点难用方式：
 * 1.需要在这个类里同意管理下载进度的回调，而不能单独的处理
 * 2.无法判断是否已经是否存在缓存
 */

public class ImageLoader {
  private static final String TAG = "ImageLoader";

  private static ImageLoader mInstance = new ImageLoader();
  private static Picasso mPicasso;

  public ImageLoader() {
    mPicasso = new Picasso.Builder(MyApplication.getInstance()).downloader(
      new ProgressPicassoDownloader(MyApplication.getInstance(), new ProgressListener() {
        @Override public void onProgress(long progress, long total, boolean done) {
          LogUtil.d(TAG, "total:" + total + ",progress:" + progress * 100.f / total + "%");
        }
      })).build();
  }

  public static ImageLoader getInstance() {
    return mInstance;
  }

  public void load(String url, ImageView imageView) {
    if (StringUtil.isEmpty(url)) url = "http://empty";
    mPicasso.load(url).into(imageView);
  }
}
